-const JsUnit = imports.jsUnit;
import * as Params from 'resource:///org/gnome/shell/misc/params.js';
-/**
- * Asserts that two "param" objects have the same properties
- * with the same values.
- *
- * @param {object} params the parsed params
- * @param {object} expected the expected params
- */
-function assertParamsEqual(params, expected) {
- for (let p in params) {
- JsUnit.assertTrue(p in expected);
- JsUnit.assertEquals(params[p], expected[p]);
- }
-}
+describe('Params.parse()', () => {
+ const defaults = {
+ foo: 'This is a test',
+ bar: null,
+ baz: 42,
+ };
-let defaults = {
- foo: 'This is a test',
- bar: null,
- baz: 42,
-};
-
-assertParamsEqual(
- Params.parse(null, defaults),
- defaults);
+ it('applies default values', () => {
+ expect(Params.parse(null, defaults)).toEqual(defaults);
+ });
-assertParamsEqual(
- Params.parse({bar: 23}, defaults),
- {foo: 'This is a test', bar: 23, baz: 42});
+ it('applies provided params', () => {
+ expect(Params.parse({bar: 23}, defaults))
+ .toEqual({foo: 'This is a test', bar: 23, baz: 42});
+ });
-JsUnit.assertRaises(
- () => {
- Params.parse({extraArg: 'quz'}, defaults);
+ it('does not allow extra args by default', () => {
+ expect(() => Params.parse({extraArg: 'quz'}, defaults)).toThrow();
});
-assertParamsEqual(
- Params.parse({extraArg: 'quz'}, defaults, true),
- {foo: 'This is a test', bar: null, baz: 42, extraArg: 'quz'});
+ it('does allow extra args when requested', () => {
+ expect(Params.parse({extraArg: 'quz'}, defaults, true))
+ .toEqual({foo: 'This is a test', bar: null, baz: 42, extraArg: 'quz'});
+ });
+});